package com.ty.wx.controller;

import com.ty.bean.Courier;
import com.ty.bean.Message;
import com.ty.bean.User;
import com.ty.mvc.ResponseBody;
import com.ty.mvc.ResponseView;
import com.ty.util.JSONUtil;
import com.ty.util.UserUtil;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * @author 田野
 */
public class QrCodeController {

    /**
     * 这个注解的作用是直接跳转到相应的地址
     * 只有两种渠道进来，一种是在列表页面点击单个快件的二维码，第二个就是在用户页面的取货二维码
     * @param request
     * @param response
     * @return
     */
    @ResponseView("/wx/creatQrCode.do")
    public String creatQrCode(HttpServletRequest request, HttpServletResponse response){
        // 表示要展示快递的二维码 express | user
        String type = request.getParameter("type");
        String code = request.getParameter("code");
        String userPhone = null;
        String qrCodeContent = null;
        if ("user".equals(type)){
            // 需要生成并返回的是user的全部快递的二维码：
            // 被扫码之后，快递员(柜子)端展示用户所有的快递
            // userPhone
            User wxUser = UserUtil.getWxUser(request.getSession());
            Courier wxCourier = UserUtil.getWxCourier(request.getSession());

            if (wxUser != null){
                userPhone = wxUser.getPhone();
            }
            if (wxCourier != null){
                userPhone = wxCourier.getPhone();
            }

            qrCodeContent = "userPhone_" + userPhone;

        }else if ("express".equals(type)){
            // 需要生成并返回的是一个快递的二维码，单个快递的信息
            // code
            qrCodeContent = "express_" + code;

        }

        HttpSession session = request.getSession();
        session.setAttribute("qrcode", qrCodeContent);
        return "/personQRcode.html";
    }
    @ResponseBody("/wx/qrcode.do")
    public String getQrCode(HttpServletRequest request, HttpServletResponse response){
        HttpSession session = request.getSession();
        Object qrcode = session.getAttribute("qrcode");
        Message message = new Message();

        if (qrcode == null){
            message.setStatus(-1);
            message.setResult("取件码获取出错，请重新操作！");
        }else {
            message.setStatus(0);
            message.setResult((String) qrcode);
        }

        String json = JSONUtil.toJSON(message);
        return json;
    }


}
